package com.kawa.kemanage.service;

import com.github.pagehelper.PageInfo;
import com.kawa.kemanage.entity.dto.RegisterDTO;
import com.kawa.kemanage.entity.User;

import java.util.List;
import java.util.Map;

public interface UserService {
    /**
     * 登录方法,可以后续添加验证码等等
     * @param username
     * @param password
     * @return
     */
    Map<String, Object> login(String username, String password);


    /**
     * 查询用户列表
     * @param pageNo 页码
     * @param pageSize 每页大小
     * @param excludeUserType 需要排除的用户类型
     * @param filterType 筛选的用户类型
     * @param userName 用户名搜索关键词
     * @return
     */
    PageInfo<User> UserList(Integer pageNo, Integer pageSize, Integer excludeUserType, Integer filterType, String userName);


    /**
     * 增加用户
     * @param user
     * @return
     */
    boolean addUser(User user);

    /**
     * 删除方法
     * @param id 用户ID
     * @param currentUserType 当前操作用户的类型
     * @return
     */
    int deleteUser(Integer id, Integer currentUserType);

    /**
     * 修改用户
     * @param user 用户信息
     * @param currentUserType 当前操作用户的类型
     * @return
     */
    boolean updateUser(User user, Integer currentUserType);

    /**
     * 获取用户类型列表
     * @return 用户类型列表
     */
    List<Map<String, Object>> queryUserTypeList();


    /**
     * 获取用户中心的数据
     */
    User personalCenter(Integer id);
    //修改用户信息
    boolean updatePersonal(User user);

    //修改密码
    boolean udatePassword(User user);

    //修改手机号
    boolean udatePhone(User user);

    /**
     * 获取用户关注的人数据
     * @param follower_id
     * @return
     */
    List<User> getFollowees(Integer follower_id);


    //获取我的粉丝数据
    List<User> getFollower(Integer followee_id);


    //取消关注
    boolean delFollowee(Integer follow_id);

    //关注
    boolean addFollowee(User user);



    boolean register(RegisterDTO registerDTO);
}
